php中有两个常见的异常, Undefined indexUndefined variable, 今天我们就来了解它们的区别和异常解决方案.

php函数中值传递的方式

在php中对于简单数据类型, 也就是number, boolean, string, 它们作为函数参数传值时, 默认是使用值传递

Undefined variable异常的原因

Undefined variable异常就是说变量未定义, 当我们引用一个未定义的变量时就会报该异常.

Undefined variable异常的解决方法

解决方法就是在引用该变量之前使用isset函数进行判断, 下面是该函数的封装

<?php

function getSafeValue(&$var,$default=null){
  return isset($var) ? $var : $default;
}

上面函数有一个点要注意, 就是必须使用引用传递, 也就是&$var, 因为通过值传递会复制一次变量, 假如该变量本身就不存在, 则又会报Undefined variable异常.

Undefined index异常的原因

Undefined index异常: 当我们使用了数组中不存在的key时, 就会报该异常.

Undefined index异常的解决方案

其实和Undefined variable解决方案差不多, 也是在引用前进行一次判断, 下面时该函数的封装.

<?php

function getSafeArrValue(&$arr,$key,$default=null){
  return isset($arr[$key]) ? $arr[$key] : $default;
}

引申阅读

php中函数参数的引用传递和值传递 php中isset, empty, is_null的区别

参考资料

PHP 中提示undefined index如何解决(多种方法)

THE END
推荐文章
  • Webpack file-loader outputs [object Module]

  • 黄帝内经-第36篇-刺疟篇(1)

  • php中函数参数的引用传递和值传递

  • 黄帝内经-第33篇-评热病论篇(2)

  • 字符编码ASCII, GB2312, Unicode和UTF-8之间的区别

  • tinyproxy搭建代理, 解决npm包安装慢的问题

  • Nodemon stuck at [nodemon] restarting due to changes...

  • 社交电商的本质

评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

用户名/邮箱/手机号
密码
用户名
密码
重复密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
注册
找回密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

0字

0字

2024年10月

0字

新增

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

0字

新增

0字

0字

0字

0字

新增

0字

0字